Software development and deployment generally involves testing to insure, to a practical extent, that the software is performing to expectations. Such testing is an important tool, whether creating a new software application or a new version of an existing software application, evaluating whether to install a software application on a system, or evaluating whether to provide general user access to a software application installed on a system.
One common testing category is functional testing. Functional testing is used to determine whether a software application is performing the correct tasks, i.e., that the code behaves the way a user would expect it to behave. Functional testing looks to what a user sees and does not require any knowledge of the actual code involved in providing the user experience.
During functional testing, the software application under test may be run on a representative computer system, i.e., a computer system representative of the expected installation environment, to determine how well that system executes the intended functions of the application. For example, functional testing may evaluate access security, user commands, data input/output/manipulation, user interfaces, etc. Such testing can be used to determine whether a given computer system is expected to have sufficient resources, e.g., processor time, memory, threads, etc., to reliably run the application.
Although testing may be performed manually, it is quite common to utilize a tool to automate the testing. One such tool is the QuickTest Professional software available through Hewlett-Packard Company, Palo Alto, Calif., USA. QuickTest Professional is automated testing software for building functional and regression test suites. Tests can be developed by simply using the target application and recording the user steps performed on the target application, or by simply declaring what steps the tester should perform. Once the test is developed, it can be “replayed” on the target application under a variety of testing conditions, e.g., different computer systems, different levels of competing applications, different versions of code, etc., to help testers identify and report on the effects of the target application. Knowledge of the effects of the target application are useful for those developing the target application as well as those looking to deploy the target application to their user base.
For the reasons stated above, and for other reasons that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for alternative methods and apparatus for testing software applications.